package com.camartsApp.service;


import com.camartsApp.common.ResultVO;
import com.camartsApp.common.UserInfoVO;

import java.util.List;

public interface UserInfoService {
    ResultVO getAvatarById(Long userId);
    ResultVO getNicknameById(Long userId);
    ResultVO getFollowingCountById(Long userId);
    ResultVO getFollowersCountById(Long userId);
    ResultVO getLikesCountById(Long userId);
    ResultVO getSignatureById(Long userId);
    ResultVO getStatusById(Long userId);

    ResultVO setHideFollowing(Long userId, boolean isPublic);
    ResultVO setHideFollowers(Long userId, boolean isPublic);
    ResultVO setHideWorks(Long userId, boolean isPublic);
    ResultVO setHideLikes(Long userId, boolean isPublic);

    ResultVO getHideFollowingStatus(Long userId);
    ResultVO getHideFollowersStatus(Long userId);
    ResultVO getHideWorksStatus(Long userId);
    ResultVO getHideLikesStatus(Long userId);

    List<UserInfoVO> getUserInfoListByIds(List<Long> userIds);
    // 获取当前用户发布的所有照片 ID
    // 获取当前用户发布的所有照片 ID
//    ResultVO getMyPhotos(Long userId);

    /**
     * 根据用户ID获取其发布的所有照片 ID
     */
    ResultVO getPhotosByUserId(Long userId);

    /**
     * 判断当前用户是否等于目标用户
     */
    ResultVO isSelf(Long currentUserId, Long targetUserId);

    ResultVO deletePhoto(Long userId, Long photoId);



    /**
     * 查询当前用户点赞过的照片（使用PhotoLikedDTO）
     */
    ResultVO getLikedPhotosByLoginUser(Long userId);

    /**
     * 查询指定用户点赞过的照片（使用PhotoLikedDTO）
     */
    ResultVO getLikedPhotosByOtherUser(Long userId);

    /**
     * 获取当前用户的基础资料
     */
    ResultVO getUserProfile(Long userId);






}
